BaseProtocolServer

StockSharp.Server.Core

プロトコルサーバー(FIX、SBEなど)のベースクラス。共有インフラ:ライフサイクル、セッション、サブスクリプション、メッセージチャネル、背景タスクが含まれています。

継承元: BaseLogReceiver

実装: IProtocolServer, ILogReceiver, ILogSource, IDisposable

コンストラクター

BaseProtocolServer
protected BaseProtocolServer(TSettings settings)
baseProtocolServer = BaseProtocolServer(settings)

新規インスタンスを初期化します。

settings
サーバー設定。

プロパティ

LoginRateLimiter
protected LoginRateLimiter LoginRateLimiter { get; private set; }
value = baseProtocolServer.LoginRateLimiter
baseProtocolServer.LoginRateLimiter = value

ログインの試みのためのレートリミッター(すべてのリスナー間で共有)。

Sessions
public IEnumerable<IMessageListenerSession> Sessions { get; }
value = baseProtocolServer.Sessions

アクティブセッション。

Settings
public TSettings Settings { get; }
value = baseProtocolServer.Settings

設定。

State
public ChannelStates State { get; protected set; }
value = baseProtocolServer.State
baseProtocolServer.State = value

ステートストレージの根本的な状態を取得します。

メソッド

AddSubscription
public void AddSubscription(ServerSubscription subscription)
baseProtocolServer.AddSubscription(subscription)

サブスクリプションを追加。

subscription
サブスクリプション。
ClearState
protected virtual void ClearState()
baseProtocolServer.ClearState()

すべての状態をクリア:リスナー、セッション、サブスクリプション。

Convert
protected string Convert(string value)
result = baseProtocolServer.Convert(value)

設定されている場合は、テキストをラテンに変換します。

CreateSubscription
protected abstract TSubscription CreateSubscription(TClientSession session, string requestId, ServerSubscription subscription, MessageTypes type)
result = baseProtocolServer.CreateSubscription(session, requestId, subscription, type)

サブスクリプション情報インスタンスを作成します。

Disconnect
public void Disconnect(IMessageListenerSession session)
baseProtocolServer.Disconnect(session)

セッションの切断

session
セッション
DisposeManaged
protected override void DisposeManaged()
baseProtocolServer.DisposeManaged()

リソースのリリース

EnqueueMessage
protected void EnqueueMessage(TClientSession session, string requestId, Func<TSubscription, TClientSession, string, CancellationToken, ValueTask> handler, CancellationToken cancellationToken)
baseProtocolServer.EnqueueMessage(session, requestId, handler, cancellationToken)

セッションのリクエストを ID でリクエストするメッセージ

EnqueueMessage
protected void EnqueueMessage(TSubscription subscription, TClientSession session, string requestId, Func<TSubscription, TClientSession, string, CancellationToken, ValueTask<bool>> handler, CancellationToken cancellationToken)
baseProtocolServer.EnqueueMessage(subscription, session, requestId, handler, cancellationToken)

コア・エンキュー: クライアント・セッションでスケジュール作業を行います。

EnqueueMessage
protected void EnqueueMessage(TSubscription[] subscribers, Func<TSubscription, TClientSession, string, CancellationToken, ValueTask> handler, CancellationToken cancellationToken)
baseProtocolServer.EnqueueMessage(subscribers, handler, cancellationToken)

複数の加入者のためのメッセージ

EnqueueMessage
protected void EnqueueMessage(TSubscription[] subscribers, Func<TSubscription, TClientSession, string, CancellationToken, ValueTask<bool>> handler, CancellationToken cancellationToken)
baseProtocolServer.EnqueueMessage(subscribers, handler, cancellationToken)

複数の加入者(ボール結果付き)のメッセージ

EnqueueMessage
protected void EnqueueMessage(TSubscription subscription, Func<TSubscription, TClientSession, string, CancellationToken, ValueTask> handler, CancellationToken cancellationToken)
baseProtocolServer.EnqueueMessage(subscription, handler, cancellationToken)

単一のサブスクリプションのメッセージの入力

EnqueueMessage
protected void EnqueueMessage(TSubscription subscription, Func<TSubscription, TClientSession, string, CancellationToken, ValueTask<bool>> handler, CancellationToken cancellationToken)
baseProtocolServer.EnqueueMessage(subscription, handler, cancellationToken)

単一のサブスクリプション( bool result と)のメッセージのキューイング。

EnqueueMessage
protected void EnqueueMessage(TClientSession session, Func<TSubscription, TClientSession, string, CancellationToken, ValueTask> handler, CancellationToken cancellationToken)
baseProtocolServer.EnqueueMessage(session, handler, cancellationToken)

セッションのメッセージ(リクエストIDなし)

GetSessionKey
protected abstract string GetSessionKey(TClientSession session)
result = baseProtocolServer.GetSessionKey(session)

クライアントセッション(e.g@.SenderCompId)に利用されるキーを取得します。

GetSubscriptions
public IEnumerable<ServerSubscription> GetSubscriptions(IMessageListenerSession session)
result = baseProtocolServer.GetSubscriptions(session)

指定したセッションのサブスクリプションを取得します。

session
セッション

戻り値: サブスクリプション。

HasSubscriptions
public bool HasSubscriptions(DataType dataType, SecurityId securityId)
result = baseProtocolServer.HasSubscriptions(dataType, securityId)

加入者があります。

IsStubSubscription
protected abstract bool IsStubSubscription(TSubscription subscription)
result = baseProtocolServer.IsStubSubscription(subscription)

サブスクリプションがスタブ(プレースホルダー)であるかどうかを確認してください。

Load
public override void Load(SettingsStorage storage)
baseProtocolServer.Load(storage)

設定をロードします。

storage
設定ストレージ。
OnClearListenerState
protected abstract void OnClearListenerState()
baseProtocolServer.OnClearListenerState()

明確なプロトコル固有のリスナー状態(停止リスナーなど)。

OnStartListeners
protected abstract void OnStartListeners(CancellationToken cancellationToken)
baseProtocolServer.OnStartListeners(cancellationToken)

プロトコル固有のリスナー(TCPなど)を開始します。_backgroundTasksにタスクを追加します。

ProcessInMessage
protected abstract void ProcessInMessage(Message message, CancellationToken cancellationToken)
baseProtocolServer.ProcessInMessage(message, cancellationToken)

顧客を購読するメッセージとルートを処理する。

ProcessLogout
protected virtual void ProcessLogout(TClientSession session)
baseProtocolServer.ProcessLogout(session)

クライアントのログアウト/切断を処理する。

RaiseNewOutMessage
protected void RaiseNewOutMessage(IMessageListenerSession session, Message message)
baseProtocolServer.RaiseNewOutMessage(session, message)

チャンネルにメッセージを発信する。

RaiseSessionConnected
protected void RaiseSessionConnected(IMessageListenerSession session)
baseProtocolServer.RaiseSessionConnected(session)

レイズセッション接続イベント。

RaiseSessionDisconnected
protected void RaiseSessionDisconnected(IMessageListenerSession session)
baseProtocolServer.RaiseSessionDisconnected(session)

セッションの切断イベントを上げます。

RemoveSubscription
public bool RemoveSubscription(ServerSubscription subscription)
result = baseProtocolServer.RemoveSubscription(subscription)

サブスクリプションを削除します。

subscription
サブスクリプション。

戻り値: サブスクリプションが見つからなかった場合、そうでなければ。

Resume
public bool Resume(ServerSubscription subscription)
result = baseProtocolServer.Resume(subscription)

サブスクリプションを再開します。

subscription
サブスクリプション。

戻り値: サブスクリプションが見つからなかった場合、そうでなければ。

Resume
public void Resume(IMessageListenerSession session)
baseProtocolServer.Resume(session)

セッションを再開します。

session
セッション
RunAsync
public IAsyncEnumerable<ValueTuple<IMessageListenerSession, Message>> RunAsync(CancellationToken cancellationToken)
result = baseProtocolServer.RunAsync(cancellationToken)

サーバをオープンし、最後に閉じる。

Save
public override void Save(SettingsStorage storage)
baseProtocolServer.Save(storage)

設定を保存します。

storage
設定ストレージ。
ScheduleSessionWork
protected abstract void ScheduleSessionWork(TClientSession session, ServerSubscription subscription, string requestId, Func<TClientSession, string, CancellationToken, ValueTask<bool>> handler)
baseProtocolServer.ScheduleSessionWork(session, subscription, requestId, handler)

クライアントセッションのアウトゴイングキューでタスクをスケジュールします。

SendInMessage
public virtual bool SendInMessage(Message message)
result = baseProtocolServer.SendInMessage(message)

クライアントに処理およびルーティングを行うためのサーバーに、インカムメッセージを送信する。

StartServer
protected void StartServer(CancellationToken cancellationToken)
baseProtocolServer.StartServer(cancellationToken)

サーバを起動: ステートを初期化し、リスナーとバックグラウンドタスクを開始します。

StopServer
protected void StopServer()
baseProtocolServer.StopServer()

サーバを停止:タスクをキャンセル、チャンネルをクリア、状態をクリアします。

Suspend
public void Suspend(IMessageListenerSession session)
baseProtocolServer.Suspend(session)

セッションを中断します。

session
セッション
Suspend
public bool Suspend(ServerSubscription subscription)
result = baseProtocolServer.Suspend(subscription)

サブスクリプションを中断します。

subscription
サブスクリプション。

戻り値: サブスクリプションが見つからなかった場合、そうでなければ。

イベント

SessionConnected
public event Action<IMessageListenerSession> SessionConnected
baseProtocolServer.SessionConnected += handler

セッションコネクティッドイベント。

SessionDisconnected
public event Action<IMessageListenerSession> SessionDisconnected
baseProtocolServer.SessionDisconnected += handler

セッションの切断イベント。

StateChanged
public event Action StateChanged
baseProtocolServer.StateChanged += handler

状態変更イベント。

SubscriptionChanged
public event Action<ServerSubscription> SubscriptionChanged
baseProtocolServer.SubscriptionChanged += handler

クライアントサブスクリプションが変更されたイベント。

フィールド

_backgroundTasks
protected readonly List<Task> _backgroundTasks
value = baseProtocolServer._backgroundTasks

背景タスク(クライアント、プロセスメッセージなど)

_cancellationRequests
protected readonly SynchronizedSet<long> _cancellationRequests
value = baseProtocolServer._cancellationRequests

注文キャンセルリクエストトランザクションIDを保留する。

_changedSubscriptions
protected readonly SynchronizedSet<ServerSubscription> _changedSubscriptions
value = baseProtocolServer._changedSubscriptions

サブスクリプションの終了通知を変更しました。

_clientSessions
protected readonly CachedSynchronizedDictionary<string, CachedSynchronizedList<TClientSession>> _clientSessions
value = baseProtocolServer._clientSessions

セッションキー(e.gSenderCompId@)をグループ化したクライアントセッション。

_incomingMessages
protected readonly Channel<Message> _incomingMessages
value = baseProtocolServer._incomingMessages

メッセージチャネルの受信。

_outgoingMessages
protected readonly Channel<ValueTuple<IMessageListenerSession, Message>> _outgoingMessages
value = baseProtocolServer._outgoingMessages

メッセージチャンネル(セッション+メッセージペア)を外します。

_subscriptions
protected readonly SubscriptionHolder<TSubscription, TClientSession> _subscriptions
value = baseProtocolServer._subscriptions

サブスクリプションホルダー。